home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / initramfs-tools / scripts / local < prev    next >
Encoding:
Text File  |  2011-12-04  |  2.8 KB  |  113 lines

  1. # Local filesystem mounting            -*- shell-script -*-
  2.  
  3. pre_mountroot()
  4. {
  5.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-top"
  6.     run_scripts /scripts/local-top
  7.     [ "$quiet" != "y" ] && log_end_msg
  8.  
  9.     wait_for_udev 10
  10.  
  11.     # Load ubi with the correct MTD partition and return since fstype
  12.     # doesn't work with a char device like ubi.
  13.     if [ -n "$UBIMTD" ]; then
  14.         modprobe ubi mtd=$UBIMTD
  15.         return
  16.     fi
  17.  
  18.     # Don't wait for a root device that doesn't have a corresponding
  19.     # device in /dev (ie, mtd0)
  20.     if [ "${ROOT#/dev}" = "${ROOT}" ]; then
  21.         return
  22.     fi
  23.  
  24.     # If the root device hasn't shown up yet, give it a little while
  25.     # to deal with removable devices
  26.     if [ ! -e "${ROOT}" ] || ! $(get_fstype "${ROOT}" >/dev/null); then
  27.         log_begin_msg "Waiting for root file system"
  28.  
  29.         # Default delay is 30s
  30.         slumber=${ROOTDELAY:-30}
  31.  
  32.         slumber=$(( ${slumber} * 10 ))
  33.         while [ ! -e "${ROOT}" ] \
  34.         || ! $(get_fstype "${ROOT}" >/dev/null); do
  35.             /bin/sleep 0.1
  36.             slumber=$(( ${slumber} - 1 ))
  37.             [ ${slumber} -gt 0 ] || break
  38.         done
  39.  
  40.         if [ ${slumber} -gt 0 ]; then
  41.             log_end_msg 0
  42.         else
  43.             log_end_msg 1 || true
  44.         fi
  45.     fi
  46.  
  47.     # We've given up, but we'll let the user fix matters if they can
  48.     while [ ! -e "${ROOT}" ]; do
  49.         # give hint about renamed root
  50.         case "${ROOT}" in
  51.         /dev/hd*)
  52.             suffix="${ROOT#/dev/hd}"
  53.             major="${suffix%[[:digit:]]}"
  54.             major="${major%[[:digit:]]}"
  55.             if [ -d "/sys/block/sd${major}" ]; then
  56.                 echo "WARNING bootdevice may be renamed. Try root=/dev/sd${suffix}"
  57.             fi
  58.             ;;
  59.         /dev/sd*)
  60.             suffix="${ROOT#/dev/sd}"
  61.             major="${suffix%[[:digit:]]}"
  62.             major="${major%[[:digit:]]}"
  63.             if [ -d "/sys/block/hd${major}" ]; then
  64.                 echo "WARNING bootdevice may be renamed. Try root=/dev/hd${suffix}"
  65.             fi
  66.             ;;
  67.         esac
  68.         echo "Gave up waiting for root device.  Common problems:"
  69.         echo " - Boot args (cat /proc/cmdline)"
  70.         echo "   - Check rootdelay= (did the system wait long enough?)"
  71.         echo "   - Check root= (did the system wait for the right device?)"
  72.         echo " - Missing modules (cat /proc/modules; ls /dev)"
  73.         panic "ALERT!  ${ROOT} does not exist.  Dropping to a shell!"
  74.     done
  75. }
  76.  
  77. mountroot()
  78. {
  79.     pre_mountroot
  80.  
  81.     # Get the root filesystem type if not set
  82.     if [ -z "${ROOTFSTYPE}" ]; then
  83.         FSTYPE=$(get_fstype "${ROOT}")
  84.     else
  85.         FSTYPE=${ROOTFSTYPE}
  86.     fi
  87.  
  88.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-premount"
  89.     run_scripts /scripts/local-premount
  90.     [ "$quiet" != "y" ] && log_end_msg
  91.  
  92.     if [ "${readonly}" = "y" ]; then
  93.         roflag=-r
  94.     else
  95.         roflag=-w
  96.     fi
  97.  
  98.     # FIXME This has no error checking
  99.     modprobe ${FSTYPE}
  100.  
  101.     # FIXME This has no error checking
  102.     # Mount root
  103.     if [ "${FSTYPE}" != "unknown" ]; then
  104.         mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}
  105.     else
  106.         mount ${roflag} ${ROOTFLAGS} ${ROOT} ${rootmnt}
  107.     fi
  108.  
  109.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-bottom"
  110.     run_scripts /scripts/local-bottom
  111.     [ "$quiet" != "y" ] && log_end_msg
  112. }
  113.